﻿/*****************************************************
**Copyright(C), 2021-2022, Ciqtek Technology.
**Version:     1.0
**Author:      
**Date:        2022/11/25
**Description: 加密解密工具(针对字符串、文件内容)
实例：

QString pubKey = QString("123456");
GeneralAlgorithm::AESEncipher *m_pAESEncipher = new GeneralAlgorithm::AESEncipher(pubKey);
QByteArray encodeArray = "11111111111111----";
QByteArray encodeArray1 = m_pAESEncipher->encode(encodeArray);
QByteArray encodeArray2 = m_pAESEncipher->decode(encodeArray1);

*****************************************************/
#ifndef AESENCIPHER_H
#define AESENCIPHER_H

#include <QObject>
#include <QByteArray>

#include "../generalalgorithm_global.h"

class QAESEncryption;

namespace GeneralAlgorithm {

	class GENERALALGORITHM_EXPORT AESEncipher
	{
	public:
		/**
		 * @brief  AESEncipher 构造函数
		 * @param  pubKey 密钥
		 */
		explicit AESEncipher(const QString& pubKey);

		/**
		 * @brief  ~AESEncipher 析构函数
		 */
		~AESEncipher();

	public:
		/**
		 * @brief  encode 加密
		 * @param  text 文本信息
		 * @return QByteArray 加密后信息
		 */
		QByteArray encode(const QByteArray& text);

		/**
		 * @brief  decode 解密
		 * @param  text 文本信息
		 * @return QByteArray 解密后信息
		 */
		QByteArray decode(const QByteArray& text);

	private:
		/** 密钥
		 */
		QByteArray m_pubKey;

		/** QAes加密工具
		 */
		QAESEncryption* m_encryption;
	};

} //namespace Common 

#endif // AESENCIPHER_H
